GrapeCity CalendarGrid for Windows Forms 3.0J
オートコンプリートとオートフィルタ(CalendarGcComboBoxCellType)

オートコンプリート機能を利用すると入力文字列を自動的に補完することが可能です。URL、住所、ファイル名、コマンドなどを頻繁に入力する場合に特に有効です。また、テキストボックスに入力する値によって、リストボックスに登録されている項目をフィルタリングするオートフィルタ機能も提供されています。


オートコンプリート機能の設定

AutoCompleteSourceAutoCompleteModeAutoCompleteCustomSourceの各プロパティを利用して、オートコンプリート機能を利用することが可能です。オートコンプリート機能は入力された文字を管理されたソース内のすべての文字列を検索して入力文字列を自動的に補完します。

注意 
検索モードの設定でAutoCompleteMatchingModeプロパティとAutoCompleteModeプロパティの組み合わせがサポートされない組み合わせの場合、InputManCellでは例外が発生します。


オートコンプリートウィンドウのスタイル

AutoCompleteクラスを利用すると、オートコンプリート機能で表示されるリストのスタイルを設定することが可能です。


(図) 候補リスト内のフォントと検索文字列のハイライトを設定したGcComboBoxCell


検索モードの設定

AutoCompleteクラスには、オートコンプリート機能で利用する検索モードを設定するMatchingModeプロパティがあり、6種類の検索方法から選択することが可能です。

       
MatchingModeの値 説明

MatchStartWith

前方一致 大文字/小文字の区別なし 全角/半角/ひらがな/カタカナ/カタカナの区別あり で検索します。

MatchAll

部分一致 大文字/小文字の区別なし 全角/半角/ひらがな/カタカナ/カタカナの区別あり で検索します。

AmbiguousMatchStartWith

前方一致 大文字/小文字の区別なし 全角/半角/ひらがな/カタカナ/カタカナの区別なし で検索します。

AmbiguousMatchAll

部分一致 大文字/小文字の区別なし 全角/半角/ひらがな/カタカナ/カタカナの区別なし で検索します。

ExactMatchStartWith

前方一致 大文字/小文字の区別あり 全角/半角/ひらがな/カタカナ/カタカナの区別あり で検索します。

ExactMatchAll

部分一致 大文字/小文字の区別あり 全角/半角/ひらがな/カタカナ/カタカナの区別あり で検索します。

注意 
AutoCompleteMatchingMode プロパティのうち、部分一致を行うMatchAll、AmbiguousMatchAll、およびExactMatchAll はAutoCompleteMode プロパティがSuggestAppend、Append のときにはサポートされません。
AutoCompleteMatchingMode プロパティとAutoCompleteMode プロパティの組み合わせがサポートされない組み合わせの場合、下記のような動作が行われます。

  • AutoCompleteMode プロパティが先に設定され、その後AutoCompleteMatchingMode プロパティが設定された場合
    AutoCompleteMode プロパティがNone に設定されます。
  • AutoCompleteMatchingMode プロパティが先に設定され、その後AutoCompleteMode プロパティが設定された場合
    例外が発生します。


検索モードの実行例

それぞれの検索モードを実行した場合の結果例は下記のようになります。

候補リスト MatchStartWith MatchAll

前方一致
大文字/小文字の区別なし
全角/半角/ひらがな/カタカナ/カタカナの区別あり

部分一致
大文字/小文字の区別なし
全角/半角/ひらがな/カタカナ/カタカナの区別あり

AmbiguousMatchStartWith AmbiguousMatchAll

前方一致
大文字/小文字の区別なし
全角/半角/ひらがな/カタカナ/カタカナの区別なし

部分一致
大文字/小文字の区別なし
全角/半角/ひらがな/カタカナ/カタカナの区別なし

ExactMatchStartWith ExactMatchAll

前方一致
大文字/小文字の区別あり
全角/半角/ひらがな/カタカナ/カタカナの区別あり

部分一致
大文字/小文字の区別あり
全角/半角/ひらがな/カタカナ/カタカナの区別あり

注意 

候補リスト内に同じ候補が存在した場合には、あとの候補が検索対象になります。


項目のオートフィルタ

テキストボックスに入力する値によって、リストボックスに登録されている項目をフィルタリングすることができます。AutoFilterクラスのEnabledプロパティをTrueに設定すると、GcComboBoxCellのオートフィルタ機能を使用できます。

MinimumPrefixLengthプロパティで設定された値の文字数が入力されたときにフィルタリングを開始します。また、一度のフィルタリングで取得可能な最大項目数は、MaxFilteredItemsプロパティで設定できます。さらに、Intervalプロパティでフィルタリング動作を開始するまでの時間(ミリ秒)を指定することができます。

注意 
オートフィルタ機能は、GcComboBoxCellのDropDownStyleプロパティがDropDownListに設定されている場合は無効になります。

AutoFilterクラスには、オートフィルタ機能で利用する検索モードを6種類の検索方法から設定するMatchingModeプロパティがあり、この検索モードはオートコンプリート機能と共通です。検索モードによる検索対象の実行例については、下記オートコンプリート機能の中の「検索モードの実行例」を参照してください。

MatchingModeの値 説明

MatchStartWith

前方一致 大文字/小文字の区別なし 全角/半角/ひらがな/カタカナ/カタカナの区別あり で検索します。

MatchAll

部分一致 大文字/小文字の区別なし 全角/半角/ひらがな/カタカナ/カタカナの区別あり で検索します。

AmbiguousMatchStartWith

前方一致 大文字/小文字の区別なし 全角/半角/ひらがな/カタカナ/カタカナの区別なし で検索します。

AmbiguousMatchAll

部分一致 大文字/小文字の区別なし 全角/半角/ひらがな/カタカナ/カタカナの区別なし で検索します。

ExactMatchStartWith

前方一致 大文字/小文字の区別あり 全角/半角/ひらがな/カタカナ/カタカナの区別あり で検索します。

ExactMatchAll

部分一致 大文字/小文字の区別あり 全角/半角/ひらがな/カタカナ/カタカナの区別あり で検索します。

また、AutoFilterでは検索対象のカラムを設定できます。MatchingSourceプロパティをAllSubItemsに設定すると、リスト内の全てのカラムを対象に検索を行い、ControlTextを設定するとTextSubItemIndexプロパティに設定したTextプロパティ設定に使用されるカラム、もしくはTextFormatプロパティに設定した書式を対象に検索を行います。

次のサンプルコードは、GcComboBoxCellのフィルタリング動作の設定例です。

Imports GrapeCity.Win.CalendarGrid
Imports InputManCell = GrapeCity.Win.CalendarGrid.InputMan

Dim today As DateTime = DateTime.Today
Dim gcComboBoxCellType = New InputManCell.CalendarGcComboBoxCellType()

gcComboBoxCellType.DropDownStyle = CalendarGridComboBoxStyle.DropDown

gcComboBoxCellType.AutoFilter.Enabled = True
gcComboBoxCellType.AutoFilter.Interval = 500
gcComboBoxCellType.AutoFilter.MaxFilteredItems = 8
gcComboBoxCellType.AutoFilter.MinimumPrefixLength = 1
gcComboBoxCellType.AutoFilter.MatchingMode = InputMan.AutoCompleteMatchingMode.MatchStartWith
gcComboBoxCellType.AutoFilter.MatchingSource = InputMan.FilterMatchingSource.AllSubItems

GcCalendarGrid1.Content(today).Rows(1).Cells(0).CellType = gcComboBoxCellType
using GrapeCity.Win.CalendarGrid;
using InputManCell = GrapeCity.Win.CalendarGrid.InputMan;

var today = DateTime.Today;
var gcComboBoxCellType = new InputManCell.CalendarGcComboBoxCellType();

gcComboBoxCellType.DropDownStyle = CalendarGridComboBoxStyle.DropDown;

gcComboBoxCellType.AutoFilter.Enabled = true;
gcComboBoxCellType.AutoFilter.Interval = 500;
gcComboBoxCellType.AutoFilter.MaxFilteredItems = 8;
gcComboBoxCellType.AutoFilter.MinimumPrefixLength = 1;
gcComboBoxCellType.AutoFilter.MatchingMode = InputManCell.AutoCompleteMatchingMode.MatchStartWith;
gcComboBoxCellType.AutoFilter.MatchingSource = InputManCell.FilterMatchingSource.AllSubItems;

gcCalendarGrid1.Content[today].Rows[1].Cells[0].CellType = gcComboBoxCellType;


関連トピック

 

 


© 2008 GrapeCity inc. All rights reserved.